Automated Verification of RPC Stub Code
نویسندگان
چکیده
Formal verification has been successfully applied to provide strong correctness guarantees of software systems, but its application to large code bases remains an open challenge. The technique of component-based software development, traditionally employed for engineering benefit, also aids reasoning about such systems. While there exist compositional verification techniques that leverage the separation implied by a component system architecture, they implicitly rely on the component platform correctly implementing the isolation and composition semantics they assume. Any property proven using these techniques is vulnerable to being invalidated by a bug in the code of the platform itself. In this paper, we show how this assumption can be eliminated by automatically generating machine-checked proofs of the correctness of a component platform’s generated Remote Procedure Call (RPC) code. We demonstrate how these generated proofs can be composed with hand-written proofs to yield a system-level property with equivalent assurance to an entirely hand-written proof. This technique forms the basis of a scalable approach to formal verification of large software systems.
منابع مشابه
Proving the correctness of client/server software
Remote procedure calls (RPCs) lie at the heart of any client/server software. Thus, formal specification and verification of RPC mechanisms is a prerequisite for the verification of any such software. In this paper, we present a mathematical specification of an RPC mechanism and we outline how to prove the correctness of an implementation — say written in C — of this mechanism at the code level...
متن کاملFast RPC on the SHRIMP Virtual Memory Mapped Network Interface
The emergence of new network interface technology is enabling new approaches to the development of communications software. This paper evaluates the SHRIMP virtual memory mapped network interface by using it to build two fast implementations of remote procedure call (RPC). Our rst implementation, called vRPC, is fully compatible with the SunRPC standard. We change the RPC runtime library; the o...
متن کاملXml-rpc Agents for Distributed Scientiic Computing
This paper presents the use of XML-RPC to achieve data interoperability between scientiic applications in a distributed environment. Remote procedure calling with XML-RPC is programming language independent and operates across diierent platforms. We have designed and implemented tools for the automatic generation of XML-RPC stub routines and XML serialization converters to support application d...
متن کاملIn-Kernel Servers on Mach 3.0: Implementation and Performance
The advantages in modularity and power of microkernel-based operating systems such as Mach 3.0 are well known. The existing performance problems of these systems, however, are signi cant. Much of the performance degradation is due to the cost of maintaining separate protection domains, traversing software layers, and using a semantically rich inter-process communication mechanism. An approach t...
متن کاملDC++: distributed object-oriented system support on top of OSF DCE
The OSF Distributed Computing Environment (DCE) is becoming an industry standard for open distributed computing. However, DCE only supports client/server-style applications based on the remote procedure call (RPC) communication model. This paper describes the design and implementation of an extended distributed object-oriented environment, DC++, on top of DCE. As opposed to RPC, it supports a u...
متن کامل